const { app, BrowserWindow } = require('electron')
const isDev = require('electron-is-dev')
const path = require('path')

let win

// 利用electron-debug，添加和Chrome类似的快捷键
isDev && require('electron-debug')({ enabled: true, showDevTools: false })
// 用于添加Chromium插件
function createDevTools () {
  const {
    default: installExtension,
    REACT_DEVELOPER_TOOLS,
    REDUX_DEVTOOLS
  } = require('electron-devtools-installer')
  // 安装devtron
  const devtronExtension = require('devtron')
  devtronExtension.install()
  // 安装React开发者工具
  installExtension(REACT_DEVELOPER_TOOLS)
  installExtension(REDUX_DEVTOOLS)
}

const devUrl = 'http://localhost:3000'
// 本地文件路径定位到打包的react文件
const localUrl = `file://${path.resolve(
  __dirname,
  '../../app.asar/build'
)}/index.html`
const appUrl = isDev ? devUrl : localUrl

function createWindow () {
  win = new BrowserWindow({ width: 800, height: 600 })

  // 然后加载应用的地址
  win.loadURL(appUrl)

  win.on('closed', () => {
    win = null
  })
}

// 修改应用启动事件
app.on('ready', () => {
  createWindow()
  // 只在开发环境加载开发者工具
  isDev && createDevTools()
})

// 当全部窗口关闭时退出。
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (win === null) {
    createWindow()
  }
})
